import com.google.java.contract.*;

public interface GraphicsEngineI {
	
	@Requires({"width > 0", "height > 0"})
	public void renderScreenRectangle(float x, float y, float width, float height);
	@Requires({"width > 0", "height > 0"})
	public void renderScreenImage(float x, float y, float width, float height);
	
	@Requires({"width > 0", "height > 0"})
	public void renderWorldRectangle(float x, float y, float width, float height);
	@Requires({"width > 0", "height > 0", "depth > 0"})
	public void renderWorldCube(float x, float y, float z, float width, float height, float depth);

	@Requires("part != null")
	public void renderPart(Part part);
	@Requires("cart != null")
	public void renderCart(Cart cart);
	@Requires("coaster != null")
	public void renderCoaster(Rollercoaster coaster);
	
	/*Added by Becca to use with GUI, to be implemented by GLWindow*/
	
	public void openWindow();
	public void runCoaster();
	
	public void renderStraightPiece();
	public void renderLeftCurve();
	public void renderRightCurve();
	public void renderUpCurve();
	public void renderDownCurve();
	
	
}
